Using Compiler Technology to Drive Advanced Microprocessors
نویسنده
چکیده
Recent years have seen the introduction of a series of ever faster, ever more complex microprocessors. These advanced microprocessors have found widespread application in machines that range from personal computers to engineering workstations to massively parallel multicomputers. Unfortunately, many of the features used to endow these processors with high peak performance numbers are diicult for either human programmers or compilers to manage. This paper looks at broad trends in microprocessor architecture, relates them back to the basic problems that they present to a compiler, and examines the kind of compiler infrastructure that will be required to address them. 1 Overview Developments in the design of microprocessors will shape tomorrow's computing systems. Microprocessor-based personal computers and workstations dominate the desktop; today's fastest supercomputers are actually large collections of microprocessors linked together in some regular way. Recent years have seen rapid changes in the design of microprocessors and systems built around them. These developments have shifted a larger share of the burden for achieving a machine's peak performance from the hardware to the software. That is, the programmer and the compiler must take more of the responsibility for achieving high performance on these systems. In their quest for ever higher peak performance, the architects of modern microprocessors have turned to a collection of features that are diicult for conventional compilers to exploit. A typical advanced architecture microprocessor has several pipelined functional units, issues several instructions per cycle, and has a short cycle time relative to its surrounding RAM chips. Independently, multiple pipelines, wide instructions, and relatively slow memories pose challenges to the compiler. Taken together, they present a daunting challenge. (Fortunately, not all of the features in modern microprocessors pose problems. These machines have large register sets, uniform addressing modes, and RISC-style integer units, each of which simpliies some aspect of compilation.) To make interesting systems out of microprocessors, architects embed them inside memory hierarchies. Single level caches are the rule; multiple level caches are beginning to appear. To achieve higher aggregate performance, a group of microprocessors is connected to a private communications network to form a mul-tiprocessor. Memory can be either local to a processor or shared among multiple processors; the extent of sharing varies widely. (One likely side eeect of sixty-four bit addressing is that users will expect to be able to address any byte in the machine, even when the memories are very large.)
منابع مشابه
Compiler Technology for Future Microprocessors
Advances in hardware technology have made it possible for microprocessors to execute a large number of instructions concurrently (i.e., in parallel). These microprocessors take advantage of the opportunity to execute instructions in parallel to increase the execution speed of a program. As in other forms of parallel processing, the performance of these microprocessors can vary greatly depending...
متن کاملIntroducing the IA-64 Architecture
Microprocessors continue on the relentless path to provide more performance. Every new innovation in computing—distributed computing on the Internet, data mining, Java programming, and multimedia data streams—requires more cycles and computing power. Even traditional applications such as databases and numerically intensive codes present increasing problem sizes that drive demand for higher perf...
متن کاملVector Microprocessors for Desktop Computing
Desktop workloads are expected to shift over the next few years to become increasingly media-centric. These multimedia applications require much larger computational demands than current desktop processors can provide. In this paper, we describe four major requirements that we believe any eeective desktop processor should address: it should meet the performance requirements of desktop workloads...
متن کاملEvaluating compiler technology for control-flow optimizations for multimedia extension architectures
This paper addresses how to automatically generate code for multimedia extension architectures in the presence of conditionals. We evaluate the costs and benefits of exploiting branches on the aggregate condition codes associated with the fields of a superword (an aggregate object larger than a machine word) such as the branchon-any instruction of the AltiVec. Branch-on-superword-conditioncodes...
متن کاملCompiler-managed memory system for software-exposed architectures
Microprocessors must exploit both instruction-level parallelism (ILP) and memory parallelism for high performance. Sophisticated techniques for ILP have boosted the ability of modern-day microprocessors to exploit ILP when available. Unfortunately, improvements in memory parallelism in microprocessors have lagged behind. This thesis explains why memory parallelism is hard to exploit in micropro...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1992